#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int position_x, position_y;
int bullet_x, bullet_y;
int high, width;
int enemyx, enemyy;
int score;
void startup()
{
	high = 18;
	width = 30;

	position_x = high / 2;
	position_y = width / 2;

	bullet_x = -1;
	bullet_y = position_y;
	enemyx = 0;
	enemyy = width / 2;
	score = 0;
}

void show()
{
	int i, j;

	system("cls");

	for (i = 0; i < high; i++)
	{
		for (j = 0; j < width; j++)
		{
			if ((i == position_x) && (j == position_y))
				printf("*");
			else if ((i == bullet_x) && (j == bullet_y))
				printf("|");
			else if (i == enemyx && j == enemyy)
				printf("@");
			else
				printf(" ");
		}
		printf("\n");
	}
	printf("得分%d\n", score);
}

void updateWithoutInput()
{
	if (bullet_x == enemyx && bullet_y == enemy_y)
	{
		score++;
		enemyx = 0;
		enemyy = rand() % width;
		bullet_x = -1;
	}
	if (bullet_x > -1)
		bullet_x--;
	static int speed = 0;
	if (speed < 10)
		speed++;
	if (speed == 10)
	{
		if (enemyx > high)
		{
			enemyx = 0;
			enemyy = rand() % width;//0width-1
		}
		else
			enemyx++;
		speed = 0;
	}
}

void updateWithInput()
{
	char input;

	if (_kbhit())
	{
		input = _getch();

		if (input == 'a')
			position_y--;
		if (input == 'd')
			position_y++;
		if (input == 'w')
			position_x--;
		if (input == 's')
			position_x++;
		if (input == ' ')
		{
			bullet_x = position_x - 1;
			bullet_y = position_y;
		}
	}
}

int main()
{
	startup();
	while (1)
	{
		show();
		updateWithoutInput();
		updateWithInput();
	}
	return 0;
}